using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using DanMuHelper.Logging;
using DanMuHelper.Tools;

namespace PickMeUp
{
    public abstract class BaseGameState : IState<GameDefines.E_GameFSMState>
    {
        public GameApp Owner { get; private set; }

        public abstract GameDefines.E_GameFSMState Id { get; }

        public BaseGameState(GameApp owner)
        {
            Owner = owner;
        }

        public virtual void OnEnterState()
        {
            //Color.green.LogInfo($"OnEnterState : {Id}");
        }

        public virtual void OnExitState()
        {
            //Color.green.LogInfo($"OnExitState : {Id}");
        }

        public virtual void OnUpdateState(float deltaTime) { }

        public virtual bool TransitionState(float deltaTime, out GameDefines.E_GameFSMState id)
        {
            id = Id;
            return false;
        }
    }
}